package com.Maykk.StuManagerT;

import java.util.ArrayList;

/**
 * @ClassName: StuModel
 * @Description: TODO 数据层 —— 处理数据
 * @Author: MaykkStar@163.com
 */
public class StuModel {
    /**
     * 编辑学员信息
     *
     * @param stuInfo
     * @param editStuInfo 要编辑的学院的ID
     */
    public void editStuInfo(ArrayList<Student> stuInfo, Student editStuInfo) {
        Global.stuList.set(stuInfo.get(0).getId() - 1, editStuInfo);
    }

    public ArrayList<Student> findAll() {
        return Global.stuList;
    }

    /**
     * 根据学员 ID 查找
     *
     * @param ID 学员ID
     * @return 查找到的学员（集合）
     */
    public ArrayList<Student> findByID(int ID) {
        ArrayList<Student> resList = new ArrayList<>();
        for (Student stu : Global.stuList) {
            if (ID == stu.getId()) {
                resList.add(stu);
            }
        }
        return resList;
    }

    /**
     * 根据姓名查找学员
     *
     * @param stuName 学员姓名
     * @return 查找到的学员（集合）
     */
    public ArrayList<Student> findByName(String stuName) {
        ArrayList<Student> resList = new ArrayList<>();
        for (Student stu : Global.stuList) {
            if (stuName.equals(stu.getName()))
                resList.add(stu);
        }
        return resList;
    }

    /**
     * 根据性别查找学员
     *
     * @param stuSex 性别
     * @return 查找到的学员（集合）
     */
    public ArrayList<Student> findBySex(String stuSex) {
        ArrayList<Student> resList = new ArrayList<>();
        for (Student stu : Global.stuList) {
            if (stuSex.equals(stu.getSex()))
                resList.add(stu);
        }
        return resList;
    }

    /**
     * 根据年龄查找学员
     *
     * @param stuAge 年龄
     * @return 查找到的学员（集合）
     */
    public ArrayList<Student> findByAge(int stuAge) {
        ArrayList<Student> resList = new ArrayList<>();
        for (Student stu : Global.stuList) {
            if (stuAge == stu.getAge())
                resList.add(stu);
        }
        return resList;
    }

    /**
     * 根据成绩查找学员
     *
     * @param stuScore 成绩
     * @return 查找到的学员（集合）
     */
    public ArrayList<Student> findByScore(float stuScore) {
        ArrayList<Student> resList = new ArrayList<>();
        for (Student stu : Global.stuList) {
            if (stuScore == stu.getScore())
                resList.add(stu);
        }
        return resList;
    }

    /**
     * 添加学员
     *
     * @param addStuInfo 要添加的学员信息
     */
    public boolean addStu(Student addStuInfo) {
        if (null == addStuInfo) {
            return false;
        }
        Student stuAdd = new Student(
                Global.stuID++,
                addStuInfo.getName(),
                addStuInfo.getSex(),
                addStuInfo.getAge(),
                addStuInfo.getScore()
        );
        return Global.stuList.add(stuAdd);
        // return Global.stuList.add(addStuInfo);
    }

    public void doDelStu(int delStuID) {
        for (int i = 0; i < Global.stuList.size(); i++) {
            if (delStuID == Global.stuList.get(i).getId()) {
                Global.stuList.remove(i);
            }
        }
    }
}
